import type { TreeNodeTitleChange, TreeAddNode } from "../SideTree/type";
import type { TreeDataType, TreeRawDataType } from "../type";

export interface EditableTreeProps {
  treeData: TreeDataType;
  visiable: boolean;
  title?: string;
  total?: number;
  addChildText?: string;
  defaultExpandAll?: boolean;
  maxShowDeepth?: number;
  maxCreateDeepth?: number;
  drawerTitle?: string;
  nodeTitleChangeValidator?: (text: string) => string | undefined;
  onNodeRemove?: (key: string | number, treeData?: TreeDataType) => void;
  onChange?: (data: TreeRawDataType) => void;
  onNodeTitleChange?: TreeNodeTitleChange;
  onNodeAdd?: TreeAddNode;
  onVisiable?: (v: boolean) => void;
}
